#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>


//顺序表装的东西的类型一键改，一键改顺序表类型
typedef int SLDatatype;

//顺序表是数组，由结构体控制好好操作里面数据的数组
typedef struct Seqlist
{
	SLDatatype* arr;
	int capacity; //顺序表数组的空间大小一共几个元素
	int size;  //顺序表数组里有效数据元素个数
}SL;

//typedef struct Seqlist SL;
//结构体变量类型的重命名


//1.顺序表的初始化 (函数声明)
//传参时也不能传未初始化的，传值传未初始化的，地址变量创建后就有值，通过指针来接收传参来初始化，传址调用改源头
void SLInit(SL* ps);//把顺序表初始化的函数的声明


//2.顺序表的销毁 (函数声明)
void SLDestory(SL* ps);


//3.顺序表数组内存的开辟 (函数声明)
void SLMerBla(SL* ps);//有结构体指针结构体里面内容全有能直接控结构体所有内容


//4.在顺序表尾部插入一个元素 (函数声明)
void SLPushBack(SL* ps, SLDatatype x);


//5.往顺序表头部插入一个元素 (函数声明)
void SLPushFront(SL* ps, SLDatatype);


//6.删除顺序表尾部的最后一个元素 (函数声明)
void SLPopBack(SL* ps);


//7.删除顺序表头部的第一个元素 (函数声明)
void SLPopFront(SL* ps);


//8.在指定位置前插入一个元素数据 (函数声明)
void SLInsert(SL* ps, SLDatatype x, int pos);


//9.在指定位置删除一个数据 (函数声明)
void SLErase(SL* ps, int pos);






//10.查找数据 (函数声明)
void SLFind(SL* ps, SLDatatype x);
//11.打印 (函数声明)
void SLprintf(SL* ps);